/*lic*/
#ifndef __BSP_USART_INIT_HELPER_H__
#define __BSP_USART_INIT_HELPER_H__

#include "main.h"

#define APP_FRAME_LEN_MAX 1536
extern __IO en_flag_status_t m_enRxFrameEndU1RX;
extern __IO en_flag_status_t m_enRxFrameEnd;
extern __IO uint16_t m_u16RxLen;
extern uint8_t m_au8RxBuf[APP_FRAME_LEN_MAX];

// 串口中断函数表导出
//void INT_SRC_USART1_TCI_IrqCallback(void);
//void INT_SRC_DMA1_TC0_IrqCallback(void);
//INT_SRC_DMA1_TC1_IrqCallback(void);
//void INT_SRC_USART1_RTO_IrqCallback(void);
//void USART1_RxError_IrqHandler(void);

/** !\brief 串口2中断回调函数
* 串口2 北斗数据处理
*/
/* 串口2 发送完成1字节中断。 */
void INT_SRC_USART2_TCI_IrqCallback(void);
// DMA1 CH3 串口2接收完成中断
//void INT_SRC_DMA1_TC3_IrqCallback(void);
// DMA2 CH6 串口2发送完成中断
void INT_SRC_DMA2_TC6_IrqCallback(void);
// USART RX timeout IRQ callback.
//void INT_SRC_USART2_RTO_IrqCallback(void);
// INT_SRC_USART2_EI Callback.
//void USART2_RxError_IrqHandler(void);

/** !\brief 串口3中断回调函数
* 串口3 控制台数据处理
*/
// 串口3 发送完成1字节中断
void INT_SRC_USART3_TCI_IrqCallback(void);
// 串口3接收完成回调
void INT_SRC_USART3_RI_IrqCallback(void);
// DMA1 CH0 串口3发送完成中断
void INT_SRC_DMA1_TC0_IrqCallback(void);
// INT_SRC_USART3_EI Callback.
void USART3_RxError_IrqHandler(void);

/* 串口9 发送完成1字节中断。 */
void INT_SRC_USART9_TCI_IrqCallback(void);
// DMA1 CH1 串口9接收完成中断
void INT_SRC_USART9_RI_IrqCallback(void);
// DMA1 CH1 串口9接收完成中断
void INT_SRC_DMA1_TC1_IrqCallback(void);
// DMA2 CH1 串口9发送完成中断
void INT_SRC_DMA2_TC1_IrqCallback(void);
/* INT_SRC_USART6_EI Callback. */
void USART9_RxError_IrqHandler(void);
// 信号
// 串口9 RS485-3接收信号
extern rt_sem_t rs485_3_usart_tx_sem;
extern rt_sem_t rs485_3_usart_rx_sem;
/* 初始化RS485-3运行环境 */
bool Init_Rs485_3_Usart_Env(void);

//Usart Config
void App_USARTxCfg(void);

#endif /* __BSP_USART_INIT_HELPER_H__ */

/*eof*/
